package org.zstack.header.configuration;

import org.zstack.header.identity.Action;
import org.zstack.header.message.APICreateMessage;
import org.zstack.header.message.APIParam;
import org.zstack.header.tag.TagResourceType;

@Action(category = ConfigurationConstant.ACTION_CATEGORY)
@TagResourceType(InstanceOfferingVO.class)
public class APICreateInstanceOfferingMsg extends APICreateMessage {
	@APIParam(maxLength = 255)
	private String name;
    @APIParam(required = false, maxLength = 2048)
	private String description;
	@APIParam(numberRange = {1, 1024})
	private int cpuNum;
	@APIParam(numberRange = {1, Integer.MAX_VALUE})
	private int cpuSpeed;
	@APIParam(numberRange = {1, Long.MAX_VALUE})
	private long memorySize;
	private String allocatorStrategy;
	private int sortKey;
	private String type;

	public APICreateInstanceOfferingMsg() {
	}

	public int getCpuNum() {
		return cpuNum;
	}

	public void setCpuNum(int cpuNum) {
		this.cpuNum = cpuNum;
	}

	public int getCpuSpeed() {
		return cpuSpeed;
	}

	public void setCpuSpeed(int cpuSpeed) {
		this.cpuSpeed = cpuSpeed;
	}

	public long getMemorySize() {
		return memorySize;
	}

	public void setMemorySize(long memorySize) {
		this.memorySize = memorySize;
	}

	public String getAllocatorStrategy() {
		return allocatorStrategy;
	}

	public void setAllocatorStrategy(String allocatorStrategy) {
		this.allocatorStrategy = allocatorStrategy;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getDescription() {
		return description;
	}

	public void setDescription(String description) {
		this.description = description;
	}

	public int getSortKey() {
    	return sortKey;
    }

	public void setSortKey(int sortKey) {
    	this.sortKey = sortKey;
    }

	public String getType() {
		return type;
	}

	public void setType(String type) {
		this.type = type;
	}
}
